home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / data / dora / doralgin.plp < prev    next >
Text File  |  1995-08-14  |  12KB  |  444 lines

  1. /************************************************************************
  2. *    ログイン処理                            *
  3. *************************************************************************/
  4. /* ダイヤル処理 (巡回時)*/
  5. %callrd{[road,RoaD,Mch]
  6.     /*var Mch1[60];var Mch2[60];var Mch3[60];var Mch4[60];
  7.     Mch1:={X3/&F&S1%B11\N3/MP-1414F_14400m};
  8.     Mch2:={X4/&F&S1%B9\N3/MP-1414F_9600m};
  9.     Mch3:={X4/&F&S1&E4%B0\N3/MP-1414F_2400m};
  10.     Mch4:={};
  11.     case    (Mch,{1},{MODEM:=Mch1},{2},{MODEM:=Mch2},{3},{MODEM:=Mch3}
  12.         ,{4},{MODEM:=Mch4});*/
  13.     case    (N1>=REDIAL,
  14.         {Yes},{im({RedialOver})},
  15.         {No},
  16.         {case    (road,
  17.             {},{im({NoTelephone})},
  18.             {GENTEI},{im({GENTEI})},,
  19.             {display({\nCh}|Mch|{の}|road|{に}|N1+1|
  20.                         {回目のアクセスします\n});
  21.             discon;type({ATZ\n});
  22.             wait(Wtime1,,{OK\n},);
  23.             dialone({AT}|@nth(MODEM,1,{/})|
  24.             @nth(MODEM,2,{/})|{D}|DIAL|@nth(RoaD,1,{/}),
  25.             {im({Connect});footnote(road|{に接続して居ます})},
  26.             {wait(1);im({Busy});display({\n只今使用中です\n})});
  27.             })
  28.         })
  29.     };
  30. %Gcheck{[RDNo]
  31.     case    (openT={} || closeT={},
  32.         {Yes},{im({GENTEI})},
  33.         {No},
  34.         {%nowhh    @getchar(@daylong,16,2);
  35.         case    (nowhh>=openT || nowhh<closeT,
  36.             {Yes},    {im(@head(RDNo,{/}))},
  37.             {No},    {im({GENTEI})}
  38.             );
  39.         });
  40.     };
  41. %DIALING{
  42.     N1:=-1;
  43.     case(GEN,{Yes},{road1:=@Gcheck(ROAD)},{No},{road1:=@head(ROAD,{/})});
  44.     case(GEN2,{Yes},{road2:=@Gcheck(ROAD2)},{No},{road2:=@head(ROAD2,{/})});
  45.     case(GEN3,{Yes},{road3:=@Gcheck(ROAD3)},{No},{road3:=@head(ROAD3,{/})});
  46.     case(GEN4,{Yes},{road4:=@Gcheck(ROAD4)},{No},{road4:=@head(ROAD4,{/})});
  47.     display({アクセス回数が}|REDIAL|{回でも接続不可時はメニュー復帰可能});
  48.     loop    ({N1:=N1+1;
  49.         case    (@callrd(road1,ROAD,1),
  50.             {Connect},{sROAD:=ROAD;im({No})},
  51.             {RedialOver},
  52.             {display({\n}|REDIAL|{回かけてもつながりません\n});
  53.                 N1:=-1;selM(REDIALt)},,
  54.             {case    (@callrd(road2,ROAD2,2),
  55.                 {Connect},{sROAD:=ROAD2;im({No})},,
  56.                 {case    (@callrd(road3,ROAD3,3),
  57.                     {Connect},{sROAD:=ROAD3;im({No})},,
  58.                     {case    (@callrd(road4,ROAD4,4),
  59.                         {Connect},
  60.                         {sROAD:=ROAD4;im({No})},
  61.                         ,{im({Yes})}
  62.                         );
  63.                     });
  64.                 });
  65.             });
  66.         });
  67.     };
  68.  
  69. %selM    {[reDLTime]
  70.     select    (
  71.     {確認して下さい。(オートリダイアルは「}|reDLTime|{秒後です」)},
  72.     Wtime4,{im({Yes})},
  73.     {CALLING AGIN},{wait(reDLTime);im({Yes})},
  74.     {MENUへ戻る},{display({MENUへ戻ります});RETCD:={Cancel};im({No})}
  75.         )
  76.     };
  77. /*    電話接続     */
  78. %callTEL{
  79.     display({\n}|NET|{-NETにアクセスします\n});
  80.     loop    ({    dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|
  81.             {D}|DIAL|@nth(sROAD,1,{/}),
  82.         {footnote(NET|{-NETに接続開始});im({No})},
  83.         {display({\nだれかが使ってますよ\n});selM(REDIALt)});
  84.         })
  85.     };
  86. /*    電話接続(単回線無限アクセス)     */
  87. %callLAST{
  88.     display({\n}|NET|{-NETにアクセスします\n});
  89.     loop    ({    dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|
  90.             {D}|DIAL|@nth(sROAD,1,{/}),
  91.         {footnote(NET|{-NETに接続開始});im({No})},
  92.         {im({Yes})});
  93.         })
  94.     };
  95.  
  96. /*    RS-232C クロス接続    */
  97. %call232C{case    (@tail(sROAD,{/}),
  98.         {1200},{baud(1200)},{2400},{baud(2400)},{4800},{baud(4800)},
  99.         {9600},{baud(9600)},{1440},{baud(19200)},{1920},{baud(19200)},
  100.         {3840},
  101.         {case    (mopver={Win31},
  102.             {Yes},{baud(19200)},
  103.             {No},{
  104.                 case    (@filechk(CDIR2|{38400bps.com}),
  105.                 {Yes},
  106.                 {command({38400bps})},
  107.                 {No},    {case    (@filechk(CDIR2|{tw38400.exe}),
  108.                         {Yes},{command({tw38400})},
  109.                         {No},{baud(19200)
  110.                         });
  111.                     });
  112.                 });
  113.             },
  114.         {},{baud(4800)});
  115.         case    (@head(MODEM,{/}),
  116.             {RET},{type({\n})},{ESC},{type({})})};
  117. /*    回線接続処理    */
  118. %callNET{
  119.     case    (@tail(MODEM,{00})={s},
  120.         {Yes},{call232C},
  121.         {No},    
  122.         {
  123.         case(@getchar(@nth(MODEM,2,{_}),1,4),
  124.             {1200},{baud(1200)},{2400},{baud(2400)},
  125.             {4800},{baud(4800)},{9600},{baud(9600)},
  126.             {1440},{baud(19200)},{1920},{baud(19200)},
  127.             {3840},
  128.             {case    (mopver={Win31},
  129.                 {Yes},{baud(19200)},
  130.                 {No},
  131.                 {case    (@filechk(CDIR2|{38400bps.com}),
  132.                     {Yes},{command({38400bps})},
  133.                     {No},
  134.                     {case    (@filechk(CDIR2|{tw38400.exe}),
  135.                         {Yes},{command({tw38400})},
  136.                         {No},{baud(19200)
  137.                         });
  138.                     });
  139.                 });
  140.             },
  141.             {},{baud(4800)});
  142.             discon;
  143.             type({ATZ\n});
  144.             wait(Wtime1,,{OK\n},);
  145.         case    (CALL,
  146.             {巡回},{DIALING},{固定},{callTEL},
  147.             {無限},{callLAST},,{固定}
  148.             )
  149.         })
  150.     };
  151. /*    オートパイロット開始処理    */
  152. %Aisatu{var WtimeA [2];
  153.     case    (loginMODE={lessTEL},
  154.         {No},{WtimeA:=10},{Yes},{WtimeA:=2});
  155.     loop    ({
  156.         wait(WtimeA,{type({\n});im({Yes})}
  157.         ,{\nNO CARRIER},
  158.         {AbortOff({\nホストの回線が切れちゃった~\n});im({No})}
  159.         ,{システムがダウンしました},
  160.         {AbortOff({\nホストのシステムがダウンしちゃった~\n});im({No})}
  161.         ,{ID を教えてねっ☆ >>},{type(ID|{\n});im({No})}
  162.         ,{IDを入力してください},{type(ID|{\n});im({No})}
  163.         ,{ID をどうぞ},{type(ID|{\n});im({No})}
  164.         ,{ID =},{type(ID|{\n});im({No})}
  165.         ,{ID  =},{type(ID|{\n});im({No})}
  166.         ,{にログインするなら},{type({gateway\n});im({Yes})});
  167.         });
  168.     case    (ID={}||ID={GUEST},
  169.         {No},{
  170.         loop    ({
  171.             wait    (Wtime2,
  172.                 {case    (PassWord={*}||PassWord={},
  173.                     {Yes},{SNDMSG({nyuryo_f.snd});
  174.                         type(@input({パスワードを入力})
  175.                         |{してください\n})},
  176.                     {No},{type(PassWord|{\n})});
  177.                 im({No})
  178.                 }
  179.                 ,{ESCカラーが使える場合は},
  180.                 {WaitMK;
  181.                 case    (ESCon={No},
  182.                     {Yes},{type({N\n})},
  183.                     {No},{type({Y\n})}
  184.                     );
  185.                 im({Yes})}
  186.                 ,{Password を教えて下さいね☆ >>},
  187.                 {LimiT:={MMN};im({No})}
  188.                 ,{パスワードを入力してください},{im({No})}
  189.                 ,{パスワードを入力してください},{im({No})}
  190.                 ,{パスワードをどうぞ},{im({No})}
  191.                 ,{Password =},{im({No})});
  192.             });
  193.         case    (PassWord={*}||PassWord={},
  194.                 {Yes},{SNDMSG({nyuryo_f.snd});
  195.                     type(@input({パスワードを入力}|
  196.                         {してください})|{\n})},
  197.                 {No},{type(PassWord|{\n})});
  198.         },
  199.         {Yes},{
  200.             wait    (5,,
  201.                 {選択},{type({Y\n})},
  202.                 {[Y]},{type({Y\n})}
  203.                 );
  204.             wait    (5,,
  205.                 {[Y]},{type({Y\n})},
  206.                 {ハンドルネームは?},{type(HanDLe|{\n})});
  207.             wait    (5,,
  208.                 {[Y]},{type({Y\n})},
  209.                 {選択して},{type({1\n})});
  210.         })
  211.     };
  212. %PREset    {
  213.     loop    ({
  214.         wait    (Wtime2,{type({\n});im({No})}
  215.             ,{1,2,3},{type({3\n});im({Yes})}
  216.             ,{[N]},{type({Y\n});im({Yes})}
  217.             ,{連続表示},{type({\n});im({Yes})}
  218.             ,{リターンキーを押して},{type({\n});im({No})}
  219.             )
  220.         })
  221.     };
  222. %AUTOLOGIN{
  223.     display({\n}|NET|{-NETへの接続を開始します\n});
  224.     footnote(NET|{-NETへの接続処理をしています});
  225.     case    (sROAD={}||ID={},
  226.         {Yes},{SNDMSG({okasi_f.snd});
  227.         display({電話番号かユーザーIDが指定されていません});
  228.         case    (sROAD={},
  229.             {Yes},{RETCD:={Cancel};
  230.             footnote({電話番号を指定して下さい});wait(3)
  231.             },
  232.             {No},{SNDMSG({erande_f.snd});
  233.                 select    ({IDを「GUEST」に設定を},
  234.                     Wtime4,,
  235.                     {  す  る  },
  236.                     {ID:={GUEST};callNET},
  237.                     {  しない  },
  238.                     {RETCD:={Cancel};footnote({IDを入力}|
  239.                     {して下さい});wait(3)}
  240.                     );
  241.                 }
  242.             );
  243.         },
  244.         {No},{callNET}
  245.         )
  246.     };
  247. /** 伝言板処理 & ボード書き込み表示 **/
  248.     case(@filechk(UP|{\DENGO}),
  249.         {Yes},{display({\n伝言板への書き込みを実行します。\n})},
  250.         {No},{display({\n伝言板には書かないよ~ん。\n})});
  251.     case(@filechk(UP2|{doraup.ctl})||@filechk(UP2|{_mopupld.ctl}),
  252.         {Yes},{display({\nボードへの書き込みを実行します。\n})},
  253.         {No},{display({\n時にはROMだけの事も有るさ!\n})});
  254.     case    (mopver={Win31},
  255.         {Yes},{display({\n通信プロトコルは}|BINty|{です\n})},
  256.         {No},{display({\n通信プロトコルは}|TBINty|{です\n})}
  257.         );
  258. /************************************************************************/
  259. /*RT-BBSの限定許可時間帯付チャンネルに対して自動実行開始する    */
  260. /************************************************************************/
  261. %WAITGENNTEI{
  262.     case(openT={} || closeT={},
  263.     {Yes},{
  264.         SNDMSG({okasi_f.snd});footnote({開閉局時間が未設定です});
  265.         wait(5);RETCD:={Cancel}
  266.         },
  267.     {No},{
  268.         footnote(openT|{ - }|closeT|{の間に自動通信を開始します。});
  269.         wait(3);
  270.         %nowhh    @getchar(@daylong,16,2);
  271.         case    (nowhh>=openT || nowhh<closeT,
  272.             {Yes},    {RETCD:={Start}},
  273.             {No},    {WAITS(openT|{:05})}
  274.             );
  275.         });
  276.     };
  277. %WAITSETTIME{
  278.     %access    ACCESS;
  279.     footnote({通信開始時刻を設定してください});
  280.     loop    ({
  281.         %a @plane(
  282.             {c通信開始時刻を指定してください [HH:MM]\n}|
  283.             {c  現在時刻は }|@getchar(@daylong,16,5)|{ です\n}|
  284.             {t  設定時刻        /xxxxx\n}|
  285.             {s                  / 設定 / 取消 / 即時 \n},
  286.             );
  287.         %access    @head(@getline(a,1,1),{\n});
  288.         %ok    @head(@getline(a,2,1),{\n});
  289.         case    (ok,
  290.             { 1},
  291.             {
  292.             case    (@getchar(access,1,2)>=0  &&
  293.                  @getchar(access,1,2)<=23 &&
  294.                  @getchar(access,3,1)={:} &&
  295.                  @getchar(access,4,2)>=00 &&
  296.                  @getchar(access,4,2)<=59,
  297.                 {Yes},{ACCESS:=access;WAITS(access);im({No})},
  298.                 {No},{im({Yes})}
  299.                 );
  300.             },
  301.             { 2},
  302.             {RETCD:={Cancel};im({No})},
  303.             { 3},
  304.             {RETCD:={Start};im({No})},
  305.             ,{im({Yes})}
  306.             );
  307.         });
  308.     };
  309.     
  310. %WAITS    {
  311.     [access]
  312.     var    waits    [6];
  313.     %hh    @getchar(access,1,2);
  314.     %mm    @getchar(access,4,2);
  315.     loop    ({
  316.         %now    @daylong;
  317.         %nowhh    @getchar(now,16,2);
  318.         %nowmm    @getchar(now,19,2);
  319.         %nowss    @getchar(now,22,2);
  320.         waits:=    ((hh*60+mm)*60)    - ((nowhh*60+nowmm)*60+nowss);
  321.         case    (waits<(-60),{Yes},{waits:=waits+24*60*60});
  322.         case    (waits<0,{Yes},{waits:=1});
  323.         footnote(access|{に自動通信を開始します。}|
  324.             {  PF5:即時開始  PF10:通信メニューへ});
  325.         waitx    (waits);
  326.         case    (@xtype,
  327.             {-2},    /* 指定時刻 */
  328.             {SNDMSG({jikan_f.snd});RETCD:={Start};im({No})},                {105},    /* PF5  即時開始指定 */
  329.             {RETCD:={Start};im({No})},
  330.             {110},    /* PF10 通信メニューへ */
  331.             {RETCD:={Cancel};im({No})},
  332.             ,{im({Yes})}
  333.             );
  334.         });
  335.     };
  336. /********   実行   ********/
  337.     var    N1    [2];
  338.     var    N2    [2];
  339.     var    road1    [20];
  340.     var    road2    [20];
  341.     var    road3    [20];
  342.     var    road4    [20];
  343. case    (sROAD={},
  344.     {Yes},{sROAD:=@im(ROAD)},
  345.     {No},    {
  346.         case    (@getchar(sROAD,1,1)={/},
  347.             {Yes},{sROAD:=@im(ROAD)},
  348.             {No},{})
  349.         }
  350.     );
  351. %CHECK3AM{
  352.     case    (AM3,
  353.         {Yes},        {WAITGENNTEI},
  354.         {Detail},    {WAITSETTIME},
  355.         ,{RETCD:={Start}}
  356.         )
  357.     };
  358. case    (@linechck,
  359.     {Yes},
  360.     {
  361.     SNDMSG({kaknin_f.snd});
  362.     footnote({回線接続中です。}|NET|{にログインし直しますか});
  363.     select    ({回線接続中です。}|NET|{にログインし直しますか},
  364.         Wtime4,
  365.         {CHECK3AM},
  366.         {}|NET|{にログインした後、実行する},
  367.         {CHECK3AM},
  368.         {ログインし直さず、そのまま実行する},
  369.         {RETCD:={NoLOG}}
  370.         );
  371.     },
  372.     {No},{CHECK3AM}
  373.     );
  374.  
  375. case    (mopver={Win31},
  376.     {Yes},
  377.     {case    (BINty,
  378.         {Z-modem}
  379.         ,{RecDir(LOG2|{BMAIL})});/*受信ディレクトリーの指定*/
  380.     });
  381. case    (RETCD,
  382.     {Cancel},{ },
  383.     {NoLOG},{RETCD:={Start}},
  384.     {Start},
  385.     {
  386.     case    (loginMODE={lessTEL},
  387.         {No},{AUTOLOGIN});
  388.     case    (RETCD,{Cancel},{ },
  389.         {Start},
  390.         {Aisatu;
  391.     loop    ({
  392.         wait(5,{im({Yes})}
  393.             ,{画面表示を選択},{PREset;im({Yes})}
  394.             ,{[Y]/N},{type({\n});im({Yes})}
  395.             ,{More},{type({\n});delfile(LOG2|{アクセスdat\ゾクセイ.DAT});
  396.                 delfile(LOG2|{アクセスdat\ゾクセイoff.DAT});im({Yes})}
  397.             ,{● 改行して下さい ●},{type({\n});im({Yes})}
  398.             ,{NO CARRIER},
  399.             {AbortOff({\n回線状態が不調でしょうか?\n})}
  400.             ,{システムがダウンしました},
  401.             {AbortOff({\nホストのシステムがダウンしちゃった~\n})}
  402.             ,{お知らせはありません},{im({Yes})}
  403.             ,{入力してねっ☆},{im({No})}
  404.             ,{\n= MAIN =},{im({No})}
  405.             ,{\n[36m= MAIN =},{im({No})}
  406.             ,{\n[36mMAIN},{im({No})}
  407.             ,{\nMAIN},{im({No})}
  408.             ,{メイン},{im({No})}
  409.             ,{メイン},{im({No})}
  410.             ,{?,@,O},{im({No})},{,?,O},{im({No})}
  411.             ,{新しく届いたメールが},{
  412.             loop    ({
  413.                 wait({3},{im({Yes})},
  414.                     {読みますか},{type({N\n});im({No})},
  415.                     {0:中止},{type({0\n});im({No})},
  416.                     {入力してねっ☆},{im({No})},
  417.                     {?,@,O},{im({No})},
  418.                     {,?,O},{im({No})},
  419.                     {quit},{type({0\n});im({No})})
  420.                 });im({No})
  421.             }
  422.             ,{新しく届いたテキストメールはありません},
  423.                             {im({Yes})},
  424.             ,{新しく届いたバイナリメールはありません},
  425.                             {im({No})},
  426.             ,{新しく届いたバイナリメールが},{
  427.             setcdir(CDIR);
  428.             footnote({バイナリメールを読み込みます});
  429.             DIGtype;im({No})
  430.             }
  431.             ,{システムからのお知らせが}, 
  432.             {    DOWNSTART;
  433.             loop    ({
  434.                 wait({3},{im({Yes})},
  435.                     {検索終了},{im({No})},
  436.                     {メッセージは以上です},{im({No})})
  437.                 });
  438.                 DOWNSTOP;im({No})
  439.             });
  440.         });
  441.  
  442.     });
  443.     });
  444.